package org.example2;

import java.lang.reflect.Method;

/**
 *  首先执行AppModifyExistingClassByAsm类中的main方法
 *  然后再执行本类中的main方法,才能看到修改后的代码,包含增强代码
 *
 *  如果不先执行AppModifyExistingClassByAsm类中的main方法
 *  就直接执行本类中的main方法,看到还是原始的代码,不包含增强代码
 */
public class App2RunAfterModifyClass {
    public static void main(String[] args) throws Exception {
        Class<?> aClass = Class.forName("org.example2.Base");
        Base base = (Base) aClass.newInstance();
        Method processMethod = aClass.getDeclaredMethod("process");
        processMethod.invoke(base);
    }
}
